'use strict';

const bcrypt = require('bcryptjs');

/**
 * 密码工具类
 */
class PasswordUtil {
  /**
   * 生成密码哈希
   * @param {string} password - 明文密码
   * @return {Promise<string>} 哈希后的密码
   */
  static async hash(password) {
    return await bcrypt.hash(password, 10);
  }

  /**
   * 验证密码
   * @param {string} password - 明文密码
   * @param {string} hash - 哈希密码
   * @return {Promise<boolean>} 是否匹配
   */
  static async compare(password, hash) {
    return await bcrypt.compare(password, hash);
  }
}

module.exports = PasswordUtil;
